0cb27275ba5986a2d292dcb4363e38688f3742e0,platform/vcs-impl/src/com/intellij/openapi/vcs/changes/VcsDirtyScopeVfsListener.java,VcsDirtyScopeVfsListener,after,#List#,89

Before Change


      if (event instanceof VFileContentChangeEvent) {
        final VirtualFile file = ((VFileContentChangeEvent)event).getFile();
        dirtyFilesAndDirs.addToFiles(file);
      } else if (event instanceof VFileCopyEvent) {
        final VirtualFile file = ((VFileCopyEvent)event).getFile();
        dirtyFilesAndDirs.addToFiles(file);
      } else if (event instanceof VFileCreateEvent) {
        final VFileCreateEvent ce = ((VFileCreateEvent)event);
        final VirtualFile file = ce.getParent().findChild(ce.getChildName());
        dirtyFilesAndDirs.addToFiles(file);
      } else if (event instanceof VFileMoveEvent) {
        dirtyFilesAndDirs.add(((VFileMoveEvent)event).getFile());
      } else if (event instanceof VFilePropertyChangeEvent) {

After Change


    // collect files and directories - sources of events
    for (VFileEvent event : events) {
      final VirtualFile file = getFileForEvent(event);
      if (file == null) { continue; }

      if (event instanceof VFileContentChangeEvent || event instanceof VFileCopyEvent || event instanceof VFileCreateEvent) {
        dirtyFilesAndDirs.addToFiles(file);
      } else if (event instanceof VFilePropertyChangeEvent) {
        final VFilePropertyChangeEvent pce = (VFilePropertyChangeEvent) event;

        if (pce.getPropertyName().equals(VirtualFile.PROP_NAME)) {
          // if a file was renamed, then the file is dirty and its parent directory is dirty too;
          // if a directory was renamed, all its children are recursively dirty, the parent dir is also dirty but not recursively.
          dirtyFilesAndDirs.add(file);   // the file is dirty recursively
          dirtyFilesAndDirs.addToFiles(file.getParent()); // directory is dirty alone. if parent is null - is checked in the method
        } else {
          dirtyFilesAndDirs.addToFiles(file);
        }
      }
    }